home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / asm / TBSource.lha / BlinyzPlay / BP.bak next >
Text File  |  1993-07-02  |  24KB  |  1,191 lines

  1. *************************************************
  2. *                        *
  3. *         (C)opyright 1992        *
  4. *                        *
  5. *        by  Tomi Blinnikka        *
  6. *                        *
  7. *    Don´t try to understand the code    *
  8. *                        *
  9. * Version 0.01    14/04/1992            *
  10. *     -0.99ö                    *
  11. *                        *
  12. * BUGS: No menus. Didn't work from WB.        *
  13. *                        *
  14. * Version 1.00    19/04/1992            *
  15. *                        *
  16. * BUGS: Har har har... Menu problem fixed:    *
  17. *    the mouse wasn't connected properly...    *
  18. *    Iconify from WB didn't work.        *
  19. *                        *
  20. * Version 1.01    07/05/1992            *
  21. *                        *
  22. * BUGS:    Version string incompatible.        *
  23. *                        *
  24. * Version 1.02    05/06/1992            *
  25. *                        *
  26. * BUGS:                        *
  27. *                        *
  28. * Version 1.03    10/06/1992            *
  29. *                        *
  30. * BUGS:                        *
  31. *                        *
  32. *************************************************
  33.  
  34.     INCLUDE    "JMPLibs.i"
  35.     INCLUDE    "exec/types.i"
  36.     INCLUDE    "exec/memory.i"
  37.     INCLUDE    "exec/tasks.i"
  38.     INCLUDE    "libraries/dosextens.i"
  39.     INCLUDE    "libraries/dos.i"
  40.     INCLUDE    "libraries/gadtools.i"
  41.     INCLUDE "workbench/startup.i"
  42.  
  43.     INCLUDE    "XREF:2.0.xref"
  44.     INCLUDE    "XREF:intuition.xref"
  45.     INCLUDE    "XREF:exec.xref"
  46.     INCLUDE    "XREF:dos.xref"
  47.     INCLUDE    "XREF:icon.xref"
  48.  
  49.     XREF    _CreatePort
  50.     XREF    _DeletePort
  51.     XREF    _CreateExtIO
  52.     XREF    _DeleteExtIO
  53.  
  54.     XDEF    _DOSBase
  55.     XDEF    _SysBase
  56.  
  57. DIntuition    set    1
  58.  
  59. DirTop:        EQU    1
  60. ListTop:    EQU    14
  61. OptionTop:    EQU    96
  62.  
  63. TRUE:        EQU    1
  64.  
  65.         section    RD,CODE
  66.  
  67.         push    d2-d7/a2-a6
  68.         push    d0/a0
  69.  
  70.         sub.l    a1,a1            ;Find our task
  71.         lib    Exec,FindTask
  72.         move.l    d0,OurTask
  73.         move.l    d0,a4
  74.         move.l    pr_CLI(a4),d0
  75.         bne    OpenDos
  76.  
  77.         add.l    #8,sp
  78.         lea.l    pr_MsgPort(a4),a0
  79.         lib    Exec,WaitPort
  80.         lea.l    pr_MsgPort(a4),a0
  81.         lib    Exec,GetMsg
  82.         move.l    d0,WBMsg
  83.  
  84. OpenDos:    openlib    Dos,NoDos        ;Keep at beginning
  85.  
  86.         tst.l    WBMsg
  87.         beq    CLIStart
  88.  
  89.         lea.l    NILName,a0
  90.         move.l    a0,d1
  91.         move.l    #MODE_NEWFILE,d2
  92.         lib    Dos,Open
  93.         move.l    d0,NILFile
  94.         beq    ShutDown
  95.         move.l    NILFile,_stdout
  96.         beq    NoNIL
  97.  
  98.         openlib    Icon,NoIcon
  99.  
  100.         move.l    WBMsg,a0
  101.         move.l    sm_ArgList(a0),a1
  102.         move.l    wa_Lock(a1),d1
  103.         lib    Dos,CurrentDir
  104.         move.l    d0,OldLock
  105.  
  106.         move.l    WBMsg,a0
  107.         move.l    sm_ArgList(a0),a1
  108.         move.l    wa_Name(a1),a0
  109.         lib    Icon,GetDiskObject
  110.         move.l    d0,DiskObject
  111.         beq    MainStart
  112.  
  113.         move.l    DiskObject,a4
  114.         move.l    $36(a4),a0        ;do_ToolTypes
  115.         lea.l    ICONIFYText1,a1
  116.         lib    Icon,FindToolType
  117.         tst.l    d0
  118.         beq    DoToolType3
  119.         move.l    d0,a0
  120.         lea.l    YESText1,a1
  121.         lib    Icon,MatchToolValue
  122.         tst.l    d0
  123.         beq    DoToolType3
  124.         move.w    #1,Iconify
  125.  
  126. DoToolType3:    bra    MainStart
  127.  
  128. CLIStart:    lib    Dos,Output
  129.         move.l    d0,_stdout
  130.         pull    d0/a0
  131.         clr.b    -1(a0,d0.l)
  132.         cmp.b    #"?",(a0)
  133.         beq    Usage
  134.         cmp.w    #'-h',(a0)
  135.         beq    Usage
  136.         cmp.w    #'-i',(a0)
  137.         bne    MainStart
  138.         move.w    #1,Iconify
  139.         add.l    #2,a0
  140.  
  141. MainStart:    move.l    _DosBase,_DOSBase    ;need this also to check
  142.         move.l    $4,_SysBase        ;so don't quit MPlay
  143.                         ;when looking at usage...
  144.         move.l    #37,d0
  145.         move.l    $4,a6
  146.         lea.l    _IntuitionLib,a1
  147.         jsr    _LVOOpenLibrary(a6)
  148.         move.l    d0,_IntuitionBase
  149.         beq    NoKS20
  150.  
  151.         openlib    GadTools,NoGadTools
  152.  
  153.         bsr    LockPubScr
  154.         tst.l    PubScreen
  155.         beq    NoPubScreen
  156.  
  157. ;Get visualinfo
  158.  
  159.         move.l    PubScreen,a0
  160.         sub.l    a1,a1
  161.         lib    GadTools,GetVisualInfoA
  162.         move.l    d0,vi
  163.  
  164. ;Make gadget stuff
  165.  
  166.         lea.l    glist,a0
  167.         lib    GadTools,CreateContext
  168.         move.l    d0,ContextGad2
  169.         beq    NoContextGad
  170.  
  171.         move.l    glist,a0
  172.         lea.l    NGDirGad,a1
  173.         move.l    #CYCLE_KIND,d0
  174.         move.l    vi,gng_VisualInfo(a1)
  175.         lea.l    DirGadTagList,a2
  176.         lib    GadTools,CreateGadgetA
  177.  
  178.         move.l    d0,a0
  179.         move.l    a0,DirGad1
  180.         add.w    d5,gg_TopEdge(a0)
  181.  
  182.         lea.l    NGFirstGad,a1
  183.         move.l    #BUTTON_KIND,d0
  184.         move.l    vi,gng_VisualInfo(a1)
  185.         lea.l    GadTagList,a2
  186.         lib    GadTools,CreateGadgetA
  187.  
  188.         move.l    d0,a0
  189.         move.l    a0,FirstGad1
  190.         add.w    d5,gg_TopEdge(a0)
  191.  
  192.         lea.l    NGSecondGad,a1
  193.         move.l    #BUTTON_KIND,d0
  194.         move.l    vi,gng_VisualInfo(a1)
  195.         lea.l    GadTagList,a2
  196.         lib    GadTools,CreateGadgetA
  197.  
  198.         move.l    d0,a0
  199.         move.l    a0,SecondGad1
  200.         add.w    d5,gg_TopEdge(a0)
  201.  
  202.         lea.l    NGThirdGad,a1
  203.         move.l    #BUTTON_KIND,d0
  204.         move.l    vi,gng_VisualInfo(a1)
  205.         lea.l    GadTagList,a2
  206.         lib    GadTools,CreateGadgetA
  207.  
  208.         move.l    d0,a0
  209.         move.l    a0,ThirdGad1
  210.         add.w    d5,gg_TopEdge(a0)
  211.  
  212.         lea.l    NGFourthGad,a1
  213.         move.l    #BUTTON_KIND,d0
  214.         move.l    vi,gng_VisualInfo(a1)
  215.         lea.l    GadTagList,a2
  216.         lib    GadTools,CreateGadgetA
  217.  
  218.         move.l    d0,a0
  219.         move.l    a0,FourthGad1
  220.         add.w    d5,gg_TopEdge(a0)
  221.  
  222.         lea.l    NGFifthGad,a1
  223.         move.l    #BUTTON_KIND,d0
  224.         move.l    vi,gng_VisualInfo(a1)
  225.         lea.l    GadTagList,a2
  226.         lib    GadTools,CreateGadgetA
  227.  
  228.         move.l    d0,a0
  229.         move.l    a0,FifthGad1
  230.         add.w    d5,gg_TopEdge(a0)
  231.  
  232.         lea.l    NGSixthGad,a1
  233.         move.l    #BUTTON_KIND,d0
  234.         move.l    vi,gng_VisualInfo(a1)
  235.         lea.l    GadTagList,a2
  236.         lib    GadTools,CreateGadgetA
  237.  
  238.         move.l    d0,a0
  239.         move.l    a0,SixthGad1
  240.         add.w    d5,gg_TopEdge(a0)
  241.  
  242.         lea.l    NGSeventhGad,a1
  243.         move.l    #BUTTON_KIND,d0
  244.         move.l    vi,gng_VisualInfo(a1)
  245.         lea.l    GadTagList,a2
  246.         lib    GadTools,CreateGadgetA
  247.  
  248.         move.l    d0,a0
  249.         move.l    a0,SeventhGad1
  250.         add.w    d5,gg_TopEdge(a0)
  251.  
  252.         lea.l    NGEighthGad,a1
  253.         move.l    #BUTTON_KIND,d0
  254.         move.l    vi,gng_VisualInfo(a1)
  255.         lea.l    GadTagList,a2
  256.         lib    GadTools,CreateGadgetA
  257.  
  258.         move.l    d0,a0
  259.         move.l    a0,EighthGad1
  260.         add.w    d5,gg_TopEdge(a0)
  261.  
  262.         lea.l    NGQuitGad,a1
  263.         move.l    #BUTTON_KIND,d0
  264.         move.l    vi,gng_VisualInfo(a1)
  265.         lea.l    GadTagList,a2
  266.         lib    GadTools,CreateGadgetA
  267.  
  268.         move.l    d0,a0
  269.         move.l    a0,QuitGad1
  270.         or.w    #GRELRIGHT,gg_Flags(a0)
  271.         add.w    d5,gg_TopEdge(a0)
  272.  
  273.         move.b    #1,GadMagic        ;Make worked OK
  274.  
  275. ;New style menu stuff
  276.  
  277.         lea.l    MNProjectMenu1,a0
  278.         lea.l    MenuTagList,a1
  279.         lib    GadTools,CreateMenusA
  280.         move.l    d0,mlist
  281.         beq    NoMenus
  282.  
  283.         move.l    mlist,a0
  284.         move.l    vi,a1
  285.         lea.l    MenuTagList,a2
  286.         lib    GadTools,LayoutMenusA
  287.         move.b    #1,MenuMagic
  288.  
  289.         bsr    OpenWin1
  290.         tst.l    Window1
  291.         beq    NoWindow1
  292.  
  293. ;Unlock PubScreen
  294.  
  295.         sub.l    a0,a0
  296.         move.l    PubScreen,a1
  297.         lib    Intuition,UnlockPubScreen
  298.         clr.l    PubScreen
  299.  
  300. Window1IDCMP:    move.l    Window1,a0
  301.         bsr    CheckIDCMP
  302.         cmp.l    #CLOSEWINDOW,d2
  303.         beq    ShutDown
  304.         cmp.l    #GADGETUP,d2
  305.         beq    DoGads
  306.         cmp.l    #MENUPICK,d2
  307.         beq    Win1Menus
  308.         cmp.l    #VANILLAKEY,d2
  309.         beq    VanillaKeys
  310.         bra    Window1IDCMP
  311.  
  312. Win1Menus:    bsr    MenuNull
  313.         cmp.w    #$00,d6
  314.         beq    Win1Menus1
  315.         bra    Window1IDCMP
  316. Win1Menus1:    cmp.w    #$00,d5
  317.         beq    About
  318.         cmp.w    #$02,d5
  319.         beq    ShutDown
  320.         bra    Window1IDCMP
  321.  
  322. VanillaKeys:    cmp.w    #$1b,d3
  323.         beq    ShutDown
  324.         cmp.w    #'Q',d3        ;upper case
  325.         beq    ShutDown
  326.         cmp.w    #'L',d3
  327.         beq    DoFirst
  328.         cmp.w    #'W',d3
  329.         beq    DoSecond
  330.         cmp.w    #'I',d3
  331.         beq    DoThird
  332.         cmp.w    #'B',d3
  333.         beq    DoFourth
  334.         cmp.w    #'S',d3
  335.         beq    DoFifth
  336.         cmp.w    #'T',d3
  337.         beq    DoSixth
  338.         cmp.w    #'E',d3
  339.         beq    DoSeventh
  340.         cmp.w    #'N',d3
  341.         beq    DoEighth
  342. ;        cmp.w    #'',d3
  343. ;        beq    DoNinth
  344. ;        cmp.w    #'',d3
  345. ;        beq    DoTenth
  346.  
  347.         cmp.w    #'q',d3        ;lower case
  348.         beq    ShutDown
  349.         cmp.w    #'l',d3
  350.         beq    DoFirst
  351.         cmp.w    #'w',d3
  352.         beq    DoSecond
  353.         cmp.w    #'i',d3
  354.         beq    DoThird
  355.         cmp.w    #'b',d3
  356.         beq    DoFourth
  357.         cmp.w    #'s',d3
  358.         beq    DoFifth
  359.         cmp.w    #'t',d3
  360.         beq    DoSixth
  361.         cmp.w    #'e',d3
  362.         beq    DoSeventh
  363.         cmp.w    #'n',d3
  364.         beq    DoEigth
  365. ;        cmp.w    #'',d3
  366. ;        beq    DoNinth
  367. ;        cmp.w    #'',d3
  368. ;        beq    DoTenth
  369.         bra    Window1IDCMP
  370.  
  371. DoGads:        cmp.w    #99,$26(a5)
  372.         beq    ShutDown
  373.         cmp.w    #1,$26(a5)
  374.         beq    ChangeDirMode
  375.         cmp.w    #10,$26(a5)
  376.         beq    DoFirst
  377.         cmp.w    #20,$26(a5)
  378.         beq    DoSecond
  379.         cmp.w    #30,$26(a5)
  380.         beq    DoThird
  381.         cmp.w    #40,$26(a5)
  382.         beq    DoFourth
  383.         cmp.w    #50,$26(a5)
  384.         beq    DoFifth
  385.         cmp.w    #60,$26(a5)
  386.         beq    DoSixth
  387.         cmp.w    #70,$26(a5)
  388.         beq    DoSeventh
  389.         cmp.w    #80,$26(a5)
  390.         beq    DoEighth
  391. ;        cmp.w    #90,$26(a5)
  392. ;        beq    DoNinth
  393. ;        cmp.w    #100,$26(a5)
  394. ;        beq    DoTenth
  395.         bra    Window1IDCMP
  396.  
  397. DoFirst:    clr.l    d2
  398.         clr.l    d3
  399.  
  400.         cmp.w    #00,DirMode
  401.         bne    DoFirst2
  402.         lea    FirstCmd1,a0
  403.         move.l    a0,d1
  404.         lib    Dos,Execute
  405.         bra    Window1IDCMP
  406. DoFirst2:    lea    FirstCmd2,a0
  407.         move.l    a0,d1
  408.         lib    Dos,Execute
  409.         bra    Window1IDCMP
  410.  
  411. DoSecond:    clr.l    d2
  412.         clr.l    d3
  413.  
  414.         cmp.w    #00,DirMode
  415.         bne    DoSecond2
  416.         lea    SecondCmd1,a0
  417.         move.l    a0,d1
  418.         lib    Dos,Execute
  419.         bra    Window1IDCMP
  420. DoSecond2:    lea    SecondCmd2,a0
  421.         move.l    a0,d1
  422.         lib    Dos,Execute
  423.         bra    Window1IDCMP
  424.  
  425. DoThird:    clr.l    d2
  426.         clr.l    d3
  427.  
  428.         cmp.w    #00,DirMode
  429.         bne    DoThird2
  430.         lea    ThirdCmd1,a0
  431.         move.l    a0,d1
  432.         lib    Dos,Execute
  433.         bra    Window1IDCMP
  434. DoThird2:    lea    ThirdCmd2,a0
  435.         move.l    a0,d1
  436.         lib    Dos,Execute
  437.         bra    Window1IDCMP
  438.  
  439. DoFourth:    clr.l    d2
  440.         clr.l    d3
  441.  
  442.         cmp.w    #00,DirMode
  443.         bne    DoFourth2
  444.         lea    FourthCmd1,a0
  445.         move.l    a0,d1
  446.         lib    Dos,Execute
  447.         bra    Window1IDCMP
  448. DoFourth2:    lea    FourthCmd2,a0
  449.         move.l    a0,d1
  450.         lib    Dos,Execute
  451.         bra    Window1IDCMP
  452.  
  453. DoFifth:    clr.l    d2
  454.         clr.l    d3
  455.  
  456.         cmp.w    #00,DirMode
  457.         bne    DoFifth2
  458.         lea    FifthCmd1,a0
  459.         move.l    a0,d1
  460.         lib    Dos,Execute
  461.         bra    Window1IDCMP
  462. DoFifth2:    lea    FifthCmd2,a0
  463.         move.l    a0,d1
  464.         lib    Dos,Execute
  465.         bra    Window1IDCMP
  466.  
  467. DoSixth:    clr.l    d2
  468.         clr.l    d3
  469.  
  470.         cmp.w    #00,DirMode
  471.         bne    DoSixth2
  472.         lea    SixthCmd1,a0
  473.         move.l    a0,d1
  474.         lib    Dos,Execute
  475.         bra    Window1IDCMP
  476. DoSixth2:    lea    SixthCmd2,a0
  477.         move.l    a0,d1
  478.         lib    Dos,Execute
  479.         bra    Window1IDCMP
  480.  
  481. DoSeventh:    clr.l    d2
  482.         clr.l    d3
  483.  
  484.         cmp.w    #00,DirMode
  485.         bne    DoSeventh2
  486.         lea    SeventhCmd1,a0
  487.         move.l    a0,d1
  488.         lib    Dos,Execute
  489.         bra    Window1IDCMP
  490. DoSeventh2:    lea    SeventhCmd2,a0
  491.         move.l    a0,d1
  492.         lib    Dos,Execute
  493.         bra    Window1IDCMP
  494.  
  495. DoEighth:    clr.l    d2
  496.         clr.l    d3
  497.  
  498.         cmp.w    #00,DirMode
  499.         bne    DoEighth2
  500.         lea    EighthCmd1,a0
  501.         move.l    a0,d1
  502.         lib    Dos,Execute
  503.         bra    Window1IDCMP
  504. DoEighth2:    lea    EighthCmd2,a0
  505.         move.l    a0,d1
  506.         lib    Dos,Execute
  507.         bra    Window1IDCMP
  508.  
  509. About:        bsr    SleepPointer
  510.         bsr    MenusOff
  511.         bsr    RemGads
  512.  
  513.         move.l    Window1,a0
  514.         lea.l    AboutTxt1,a1
  515.         move.l    #$00,a2        ;positive text
  516.         lea.l    OKTxt,a3    ;a bit the wrong way around but...
  517.         move.l    #$00,d0
  518.         move.l    #$00,d1
  519.         move.l    #320,d2
  520.         move.l    #$50,d3
  521.         lib    Intuition,AutoRequest
  522.         bsr    AddGads
  523.         bsr    MenusOn
  524.         bsr    NormalPointer
  525.         bra    Window1IDCMP
  526.  
  527. Break:        lea.l    BreakText1,a0
  528.         bsr    Printer
  529.         move.l    #CLOSEWINDOW,d2        ;fake closewindow...
  530.         move.l    #-1,d0
  531.         rts
  532.  
  533. ShutDown:
  534. ShutDown7000:    tst.l    PubScreen
  535.         beq    ShutDown6000
  536.         sub.l    a0,a0
  537.         move.l    PubScreen,a1
  538.         lib    Intuition,UnlockPubScreen
  539.  
  540. ShutDown6000:    bsr    CloseWin1
  541.         bsr    Clean2.0Magic
  542.  
  543. ShutDown4000:    tst.l    NILFile
  544.         beq    ShutDown3000
  545.         move.l    NILFile,d1
  546.         lib    Dos,Close
  547.  
  548. ShutDown3000:    tst.l    DiskObject
  549.         beq    ShutDown2000
  550.         move.l    DiskObject,a0
  551.         lib    Icon,FreeDiskObject
  552.  
  553. ShutDown2000:    move.l    OldLock,d1
  554.         beq    ShutDown1050
  555.         lib    Dos,CurrentDir
  556.  
  557. ShutDown1050:    move.l    WBMsg,d2
  558.         beq    ShutDown1010
  559.         lib    Exec,Forbid
  560.         move.l    d2,a1
  561.         flib    Exec,ReplyMsg
  562.  
  563. ShutDown1010:    tst.l    _DOSBase        ;transfered after '?' check
  564.         beq    ShutDown1000
  565.         lea.l    QuitCmd,a0        ;Quit MPlay too..
  566.         move.l    a0,d1
  567.         clr.l    d2
  568.         clr.l    d3
  569.         lib    Dos,Execute
  570.  
  571. ShutDown1000:    closlib    Icon
  572.         closlib    Intuition
  573.         closlib    GadTools
  574.         closlib    Dos
  575.         pull    d2-d7/a2-a6
  576.         clr.l    d0
  577.         rts
  578.  
  579. ;CheckIDCMP keyboard (CTRL_C) and Intuition.
  580. ;Give it the window structure in a0
  581.  
  582. CheckIDCMP:    move.l    $56(a0),a2        ;Get window's port
  583.         clr.l    d1            ;Set signals for
  584.         clr.l    d0
  585.         move.b    $0f(a2),d1        ;IntuiMessages,
  586.         bset.l    d1,d0
  587.         bset.l    #SIGBREAKB_CTRL_C,d0    ;and CTRL_C
  588.         lib    Exec,Wait
  589.  
  590.         cmp.l    #SIGBREAKF_CTRL_C,d0    ;If CTRL_C
  591.         beq    Break            ;go break
  592.  
  593. C2GetMsg1:    move.l    a2,a0    
  594.         lib    GadTools,GT_GetIMsg
  595.         tst.l    d0
  596.         beq    C2GetMsg2
  597.     
  598.         move.l    d0,a1 
  599.         move.l    $14(a1),d2        ;answers with Class in d2,
  600.         move.w    $18(a1),d3        ;Code in d3 and
  601.         move.w    $1a(a1),a4        ;Qualifier in a4
  602.         move.l    $1c(a1),a5        ;IAddress in a5
  603.         lib    GadTools,GT_ReplyIMsg
  604.         bra    C2GetMsg1
  605. C2GetMsg2:    move.l    #-1,d0
  606.         rts
  607.  
  608. ;Newer MenuNull subroutine
  609.  
  610. MenuNull:    move.w    d3,d0
  611.         and.w    #$1f,d0
  612.         move.w    d0,d6
  613.         move.w    d3,d0
  614.         lsr.w    #5,d0
  615.         move.w    d0,d1
  616.         and.w    #$3f,d0
  617.         move.w    d0,d5
  618.         lsr.w    #6,d1
  619.         move.w    d1,d4
  620.         rts
  621.  
  622. ChangeDirMode:    add.w    #$01,DirMode
  623.         cmp.w    #$02,DirMode
  624.         bne    Window1IDCMP
  625.         move.w    #$00,DirMode
  626.         bra    Window1IDCMP
  627.  
  628. SleepPointer:    move.l    Window1,a0
  629.         lea.l    ClockPointer1,a1
  630.         move.l    #16,d0
  631.         move.l    #16,d1            ;WHAT-THE-HECK IS THIS FOR?
  632.         move.l    #-6,d2
  633.         move.l    #0,d3
  634.         lib    Intuition,SetPointer
  635.         rts
  636.  
  637. NormalPointer:    move.l    Window1,a0
  638.         lib    Intuition,ClearPointer
  639.         rts
  640.  
  641. MenusOn:    move.l    Window1,a0
  642.         move.l    mlist,a1
  643.         lib    Intuition,SetMenuStrip
  644.         rts
  645.  
  646. MenusOff:    move.l    Window1,a0
  647.         lib    Intuition,ClearMenuStrip
  648.         rts
  649.  
  650. RemGads:    move.l    Window1,a0
  651.         move.l    DirGad1,a1
  652.         sub.l    a2,a2
  653.         move.l    #-1,d0
  654.         lib    Intuition,RemoveGList
  655.         rts
  656.  
  657. AddGads:    move.l    Window1,a0
  658.         move.l    DirGad1,a1
  659.         sub.l    a2,a2
  660.         move.l    #-1,d0
  661.         move.l    #-1,d1
  662.         lib    Intuition,AddGList
  663.  
  664.         move.l    DirGad1,a0
  665.         move.l    Window1,a1
  666.         sub.l    a2,a2
  667.         move.l    #-1,d0
  668.         lib    Intuition,RefreshGList
  669.  
  670.         move.l    Window1,a0
  671.         sub.l    a1,a1
  672.         lib    GadTools,GT_RefreshWindow
  673.         rts
  674.  
  675. ;Lock PublicScreen
  676.  
  677. LockPubScr:    sub.l    a0,a0
  678.         lib    Intuition,LockPubScreen
  679.         move.l    d0,PubScreen
  680.         beq    LockPubScr_OUT
  681.  
  682. ;Get some sizes
  683.  
  684.         move.l    PubScreen,a0
  685.         move.b    sc_BarHeight(a0),d0
  686.         add.b    #1,d0
  687.         move.b    d0,BHeight+1
  688.         move.w    BHeight,d5
  689.         add.w    d5,SmallYSize
  690.         add.w    d5,WinYSize
  691. LockPubScr_OUT:    rts
  692.  
  693. ;Open Window
  694.  
  695. OpenWin1:    tst.w    Iconify
  696.         beq    OpenWin1.01
  697.         lea.l    NewWindow1,a0
  698.         and.l    #~ACTIVATE,nw_Flags(a0)
  699.         move.l    NewWindow1,ZoomXY
  700.         move.l    NewWindow1+4,ZoomXY+4
  701.         move.l    Alt1XY,nw_LeftEdge(a0)
  702.         move.w    #160,nw_Width(a0)
  703.         move.w    BHeight,nw_Height(a0)
  704. OpenWin1.01:    lea.l    NewWindow1,a0
  705.         lea.l    Win1TagList,a1
  706.         lib    Intuition,OpenWindowTagList
  707.         move.l    d0,Window1
  708.         beq    OpenWin1_ERR1
  709.         bsr    AddGads
  710. OpenWin1.1:    move.l    Window1,a0
  711.         move.l    mlist,a1
  712.         lib    Intuition,SetMenuStrip
  713.         move.l    #-1,d0
  714.         rts
  715. OpenWin1_ERR1:    clr.l    d0
  716.         rts        
  717.  
  718. CloseWin1:    tst.l    Window1
  719.         beq    CloseWin1_OUT
  720.         bsr    RemGads
  721. CloseWin1.1:    move.l    Window1,a0
  722.         lib    Intuition,ClearMenuStrip
  723.         move.l    Window1,a3
  724.         bsr    ClearMSGs
  725. CloseWin1_OUT:    clr.l    Window1
  726.         rts
  727.  
  728. ;ClearMsgs subroutine
  729. ;a3 = window structure
  730.  
  731. ClearMSGs:    lib    Exec,Forbid
  732.         move.l    Window1,a3
  733.         move.l    $56(a3),a2
  734. ClearMsg1:    move.l    a2,a0    
  735.         flib    Exec,GetMsg
  736.         tst.l    d0
  737.         beq    ClearMsg2
  738.         move.l    d0,a1 
  739.         flib    Exec,ReplyMsg
  740.         bra    ClearMsg1
  741. ClearMsg2:    move.l    a3,a0
  742.         lib    Intuition,CloseWindow
  743.         lib    Exec,Permit
  744. ClearMsg3:    rts
  745.  
  746. Clean2.0Magic:    tst.b    GadMagic
  747.         beq    Clean2.0M2
  748.         move.l    glist,a0
  749.         lib    GadTools,FreeGadgets
  750.  
  751. Clean2.0M2:    tst.b    MenuMagic
  752.         beq    Clean2.0M3
  753.         move.l    mlist,a0
  754.         lib    GadTools,FreeMenus
  755.  
  756. Clean2.0M3:    tst.l    vi
  757.         beq    Clean2.0_OUT
  758.         move.l    vi,a0
  759.         lib    GadTools,FreeVisualInfo
  760.  
  761. Clean2.0_OUT:    rts
  762.  
  763. ;Error etc. messages
  764.  
  765. Usage:        lea.l    UsageText1,a0
  766.         bsr    Printer
  767.         bra    ShutDown
  768.  
  769. NoDos:        add.l    #8,sp
  770.         pull    d2-d7/a2-a6
  771.         move.l    #RETURN_FAIL,d0
  772.         rts
  773.  
  774. NoKS20:        lea.l    NoKS20Text1,a0
  775.         bsr    Printer
  776.         bra    ShutDown
  777.  
  778. NoGadTools:    lea.l    NoGTText1,a0
  779.         bsr    Printer
  780.         bra    ShutDown
  781.  
  782. NoNIL:        lea.l    NoNILText1,a0
  783.         bsr    Printer
  784.         bra    ShutDown
  785.  
  786. NoIcon:        lea.l    NoIconText1,a0
  787.         bsr    Printer
  788.         bra    ShutDown
  789.  
  790. NoPubScreen:    lea.l    NoPubScrText1,a0
  791.         bsr    Printer
  792.         bra    ShutDown
  793.  
  794. NoWindow1:    lea.l    NoWindowText1,a0
  795.         bsr    Printer
  796.         bra    ShutDown
  797.  
  798. NoContextGad:    lea.l    NoContextText1,a0
  799.         bsr    Printer
  800.         bra    ShutDown
  801.  
  802. NoMenus:    lea.l    NoMenusText1,a0
  803.         bsr    Printer
  804.         bra    ShutDown
  805.  
  806. Printer:    printa    a0,_stdout
  807.         rts
  808.  
  809. DoAutoRequest:    move.l    #$00,a2        ;positive text
  810.         lea.l    OKTxt(pc),a3    ;a bit the wrong way around but...
  811.         move.l    #$00,d0
  812.         move.l    #$00,d1
  813.         move.l    #$00,d2
  814.         move.l    #$00,d3
  815.         sub.l    a0,a0
  816.         lib    Intuition,AutoRequest
  817.         rts
  818.  
  819. ;Structures
  820.  
  821. ;GadTools stuff
  822.  
  823. vi:        dc.l    0        ;Visual Info
  824. mlist:        dc.l    0
  825. ContextGad2:    dc.l    0
  826. GadMagic:    dc.b    0
  827. MenuMagic:    dc.b    0
  828.  
  829. ;Gadgets
  830.  
  831. DirGad1:    dc.l    0
  832. FirstGad1:    dc.l    0
  833. SecondGad1:    dc.l    0
  834. ThirdGad1:    dc.l    0
  835. FourthGad1:    dc.l    0
  836. FifthGad1:    dc.l    0
  837. SixthGad1:    dc.l    0
  838. SeventhGad1:    dc.l    0
  839. EighthGad1:    dc.l    0
  840. QuitGad1:    dc.l    0
  841.  
  842. ;display stuff
  843.  
  844. PubScreen:    dc.l    0
  845. Window1:    dc.l    0
  846. BHeight:    dc.w    0
  847. Iconify:    dc.w    0        ;(1 = Yes, please)
  848.  
  849. ;lib stuff
  850.  
  851. _SysBase:    dc.l    0
  852. _DOSBase:    dc.l    0
  853.  
  854.         libnames
  855.  
  856. ;Other stuff, part I
  857.  
  858. OurTask:    dc.l    0
  859. NILFile:    dc.l    0
  860. _stdout:    dc.l    0
  861. WBMsg:        dc.l    0
  862. DiskObject:    dc.l    0
  863. OldLock:    dc.l    0
  864. DirMode:    dc.w    0
  865.  
  866. ;Strings, AREXX filenames
  867.  
  868. FirstCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP1st",0
  869. FirstCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP1st2",0
  870. SecondCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP2nd",0
  871. SecondCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP2nd2",0
  872. ThirdCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP3rd",0
  873. ThirdCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP3rd2",0
  874. FourthCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP4th",0
  875. FourthCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP4th2",0
  876. FifthCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP5th",0
  877. FifthCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP5th2",0
  878. SixthCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP6th",0
  879. SixthCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP6th2",0
  880. SeventhCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP7th",0
  881. SeventhCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP7th2",0
  882. EighthCmd1:    dc.b    "SYS:REXXC/RX REXX2:MP8th",0
  883. EighthCmd2:    dc.b    "SYS:REXXC/RX REXX2:MP8th2",0
  884. QuitCmd:    dc.b    "SYS:REXXC/RX REXX2:MPQuit",0
  885.  
  886. ;Strings, error
  887.  
  888. BreakText1:    dc.b    "***Break",10,0
  889. NoKS20Text1:    dc.b    "ERROR: You need Kickstart 2.0 or higher!",10,0
  890. NoGTText1:    dc.b    "ERROR: Couldn't open gadtools.library!",10,0
  891. NoNILText1:    dc.b    "ERROR: Couldn't open device NIL:!",10,0
  892. NoIconText1:    dc.b    "ERROR: Couldn't open icon.library!",10,0
  893. NoPubScrText1:    dc.b    "ERROR: Couldn't lock PublicScreen",10,0
  894. NoContextText1:    dc.b    "ERROR: Couldn't create context gadget",10,0
  895. NoMenusText1:    dc.b    "ERROR: Couldn't allocate menus structure",10,0
  896. NoWindowText1:    dc.b    "ERROR: Couldn't open Window",10,0
  897.  
  898. ;Strings, names
  899.  
  900. RDVersion:    dc.b    "$VER: "
  901. UsageText1:    dc.b    "BlinyzPlay 1.03 (10.6.92). (C)opyright Tomi Blinnikka 1992",10,10
  902.         dc.b    10,"          !!! PRIVATE VERSION !!!",10,10,10
  903.         dc.b    "USAGE: BlinyzPlay [-i]",10,10
  904.         dc.b    "       Where: [-i] iconify on startup",10,10
  905.         dc.b    "Plays my own tunes from MODULES: or MODULES2:",10
  906.         dc.b    "Needs special AREXX-scripts and Juha Koivisto's",10
  907.         dc.b    "MPlay. Not much use to anyone else but me.",10,10
  908.         dc.b    "See docs for more information.",10,0
  909. RDName1:    dc.b    "BlinyzPlay",0
  910. OKText1:    dc.b    "OK",0
  911. NILName:    dc.b    "NIL:",0
  912. ICONIFYText1:    dc.b    "ICONIFY",0
  913. YESText1:    dc.b    "YES",0
  914. AboutText1:    dc.b    "Name   : BlinyzPlay",0
  915. AboutText2:    dc.b    "Version: 1.03",0
  916. AboutText3:    dc.b    "Author : Tomi Blinnikka",0
  917. AboutText4:    dc.b    "   (C)opyright  1992",0
  918.         ds.l    0
  919.  
  920. ;New screen & new window structures
  921.  
  922. NewWindow1:    dc.w    470,35            ;X,Y POS
  923.         dc.w    160            ;WIDTH
  924. WinYSize:    dc.w    112            ;HEIGHT
  925.         dc.b    0,1            ;PENS
  926.         dc.l    CLOSEWINDOW!VANILLAKEY!MENUPICK!GADGETUP    ;IDCMP FLAGS
  927.         dc.l    NOCAREREFRESH!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE!ACTIVATE    ;FLAGS
  928.         dc.l    0,0            ;GADGETS, CHECKMARK
  929.         dc.l    RDName1            ;TITLE
  930.         dc.l    0            ;SCREEN ADDRESS
  931.         dc.l    0            ;BITMAP            
  932.         dc.w    0,0,0,0            ;MIN/MAX SIZE
  933.         dc.w    PUBLICSCREEN        ;TYPE
  934.  
  935. Win1TagList:    dc.l    WA_AutoAdjust,TRUE
  936.         dc.l    WA_Zoom,ZoomXY
  937.         dc.l    TAG_DONE,0
  938.  
  939. ZoomXY:
  940. SmallXPos:    dc.w    470
  941. SmallYPos:    dc.w    35
  942. SmallXSize:    dc.w    160
  943. SmallYSize:    dc.w    0
  944.  
  945. Alt1XY:
  946. Alt1XPos:    dc.w    470
  947. Alt1YPos:    dc.w    35
  948.  
  949. ;Fonts
  950.  
  951. Topaz:        dc.l    TopazName
  952.         dc.w    8
  953.         dc.b    0
  954.         dc.b    0
  955. TopazName:    dc.b    "topaz.font",0
  956.         ds.l    0
  957.  
  958.  
  959. ;ITextStructures
  960.  
  961. OKTxt:        dc.b    1,2            ;PENS
  962.         dc.w    0            ;MODE
  963.         dc.w    6,3            ;LEFT+TOPEDGE
  964.         dc.l    0            ;FONT
  965.         dc.l    OKText1            ;TEXT
  966.         dc.l    0            ;NEXTTEXT
  967.  
  968. AboutTxt1:    dc.b    1,2            ;PENS
  969.         dc.w    0            ;MODE
  970.         dc.w    0,0            ;LEFT+TOPEDGE
  971.         dc.l    0            ;FONT
  972.         dc.l    AboutText1        ;TEXT
  973.         dc.l    AboutTxt2        ;NEXTTEXT
  974.  
  975. AboutTxt2:    dc.b    1,2            ;PENS
  976.         dc.w    0            ;MODE
  977.         dc.w    0,10            ;LEFT+TOPEDGE
  978.         dc.l    0            ;FONT
  979.         dc.l    AboutText2        ;TEXT
  980.         dc.l    AboutTxt3        ;NEXTTEXT
  981.  
  982. AboutTxt3:    dc.b    1,2            ;PENS
  983.         dc.w    0            ;MODE
  984.         dc.w    0,20            ;LEFT+TOPEDGE
  985.         dc.l    0            ;FONT
  986.         dc.l    AboutText3        ;TEXT
  987.         dc.l    AboutTxt4        ;NEXTTEXT
  988.  
  989. AboutTxt4:    dc.b    1,2            ;PENS
  990.         dc.w    0            ;MODE
  991.         dc.w    0,30            ;LEFT+TOPEDGE
  992.         dc.l    0            ;FONT
  993.         dc.l    AboutText4        ;TEXT
  994.         dc.l    0 ;AboutTxt5        ;NEXTTEXT
  995.  
  996. ;Gadgets
  997.  
  998. DirLabels:    dc.l    DirLabel1,DirLabel2,0
  999. DirLabel1:    dc.b    "MODULES:",0
  1000. DirLabel2:    dc.b    "MODULES2:",0
  1001. FirstGadText1:    dc.b    "_Live2Dance",0
  1002. SecondGadText1:    dc.b    "_WTTJ",0
  1003. ThirdGadText1:    dc.b    "_It's My Country",0
  1004. FourthGadText1:    dc.b    "_BlinyzQ51",0
  1005. FifthGadText1:    dc.b    "_Spanish Fly",0
  1006. SixthGadText1:    dc.b    "_Track51 - Remix",0
  1007. SeventhGadText1: dc.b    "B_eyond Life",0
  1008. EighthGadText1: dc.b    "Wi_nner",0
  1009. QuitGadText1:    dc.b    "_Quit",0
  1010.         ds.l    0
  1011.  
  1012. glist:        dcb.b    gg_SIZEOF,0
  1013.  
  1014. NGDirGad:    dc.w    30        ;gng_LeftEdge
  1015.         dc.w    DirTop        ;gng_TopEdge
  1016.         dc.w    100        ;gng_Width
  1017.         dc.w    12        ;gng_Height
  1018.         dc.l    0        ;gng_GadgetText
  1019.         dc.l    Topaz        ;gng_TextAttr
  1020.         dc.w    1        ;gng_GadgetID
  1021.         dc.l    PLACETEXT_IN    ;gng_Flags
  1022.         dc.l    0        ;gng_VisualInfo
  1023.         dc.l    0        ;gng_UserData
  1024.  
  1025. NGFirstGad:    dc.w    4        ;gng_LeftEdge
  1026.         dc.w    ListTop        ;gng_TopEdge
  1027.         dc.w    160-8        ;gng_Width
  1028.         dc.w    10        ;gng_Height
  1029.         dc.l    FirstGadText1    ;gng_GadgetText
  1030.         dc.l    Topaz        ;gng_TextAttr
  1031.         dc.w    10        ;gng_GadgetID
  1032.         dc.l    PLACETEXT_IN    ;gng_Flags
  1033.         dc.l    0        ;gng_VisualInfo
  1034.         dc.l    0        ;gng_UserData
  1035.  
  1036. NGSecondGad:    dc.w    4        ;gng_LeftEdge
  1037.         dc.w    ListTop+10    ;gng_TopEdge
  1038.         dc.w    160-8        ;gng_Width
  1039.         dc.w    10        ;gng_Height
  1040.         dc.l    SecondGadText1    ;gng_GadgetText
  1041.         dc.l    Topaz        ;gng_TextAttr
  1042.         dc.w    20        ;gng_GadgetID
  1043.         dc.l    PLACETEXT_IN    ;gng_Flags
  1044.         dc.l    0        ;gng_VisualInfo
  1045.         dc.l    0        ;gng_UserData
  1046.  
  1047. NGThirdGad:    dc.w    4        ;gng_LeftEdge
  1048.         dc.w    ListTop+20    ;gng_TopEdge
  1049.         dc.w    160-8        ;gng_Width
  1050.         dc.w    10        ;gng_Height
  1051.         dc.l    ThirdGadText1    ;gng_GadgetText
  1052.         dc.l    Topaz        ;gng_TextAttr
  1053.         dc.w    30        ;gng_GadgetID
  1054.         dc.l    PLACETEXT_IN    ;gng_Flags
  1055.         dc.l    0        ;gng_VisualInfo
  1056.         dc.l    0        ;gng_UserData
  1057.  
  1058. NGFourthGad:    dc.w    4        ;gng_LeftEdge
  1059.         dc.w    ListTop+30    ;gng_TopEdge
  1060.         dc.w    160-8        ;gng_Width
  1061.         dc.w    10        ;gng_Height
  1062.         dc.l    FourthGadText1    ;gng_GadgetText
  1063.         dc.l    Topaz        ;gng_TextAttr
  1064.         dc.w    40        ;gng_GadgetID
  1065.         dc.l    PLACETEXT_IN    ;gng_Flags
  1066.         dc.l    0        ;gng_VisualInfo
  1067.         dc.l    0        ;gng_UserData
  1068.  
  1069. NGFifthGad:    dc.w    4        ;gng_LeftEdge
  1070.         dc.w    ListTop+40    ;gng_TopEdge
  1071.         dc.w    160-8        ;gng_Width
  1072.         dc.w    10        ;gng_Height
  1073.         dc.l    FifthGadText1    ;gng_GadgetText
  1074.         dc.l    Topaz        ;gng_TextAttr
  1075.         dc.w    50        ;gng_GadgetID
  1076.         dc.l    PLACETEXT_IN    ;gng_Flags
  1077.         dc.l    0        ;gng_VisualInfo
  1078.         dc.l    0        ;gng_UserData
  1079.  
  1080. NGSixthGad:    dc.w    4        ;gng_LeftEdge
  1081.         dc.w    ListTop+50    ;gng_TopEdge
  1082.         dc.w    160-8        ;gng_Width
  1083.         dc.w    10        ;gng_Height
  1084.         dc.l    SixthGadText1    ;gng_GadgetText
  1085.         dc.l    Topaz        ;gng_TextAttr
  1086.         dc.w    60        ;gng_GadgetID
  1087.         dc.l    PLACETEXT_IN    ;gng_Flags
  1088.         dc.l    0        ;gng_VisualInfo
  1089.         dc.l    0        ;gng_UserData
  1090.  
  1091. NGSeventhGad:    dc.w    4        ;gng_LeftEdge
  1092.         dc.w    ListTop+60    ;gng_TopEdge
  1093.         dc.w    160-8        ;gng_Width
  1094.         dc.w    10        ;gng_Height
  1095.         dc.l    SeventhGadText1    ;gng_GadgetText
  1096.         dc.l    Topaz        ;gng_TextAttr
  1097.         dc.w    70        ;gng_GadgetID
  1098.         dc.l    PLACETEXT_IN    ;gng_Flags
  1099.         dc.l    0        ;gng_VisualInfo
  1100.         dc.l    0        ;gng_UserData
  1101.  
  1102. NGEighthGad:    dc.w    4        ;gng_LeftEdge
  1103.         dc.w    ListTop+70    ;gng_TopEdge
  1104.         dc.w    160-8        ;gng_Width
  1105.         dc.w    10        ;gng_Height
  1106.         dc.l    EighthGadText1    ;gng_GadgetText
  1107.         dc.l    Topaz        ;gng_TextAttr
  1108.         dc.w    80        ;gng_GadgetID
  1109.         dc.l    PLACETEXT_IN    ;gng_Flags
  1110.         dc.l    0        ;gng_VisualInfo
  1111.         dc.l    0        ;gng_UserData
  1112.  
  1113. NGQuitGad:    dc.w    -110        ;gng_LeftEdge
  1114.         dc.w    OptionTop    ;gng_TopEdge
  1115.         dc.w    60        ;gng_Width
  1116.         dc.w    12        ;gng_Height
  1117.         dc.l    QuitGadText1    ;gng_GadgetText
  1118.         dc.l    Topaz        ;gng_TextAttr
  1119.         dc.w    99        ;gng_GadgetID
  1120.         dc.l    PLACETEXT_IN    ;gng_Flags
  1121.         dc.l    0        ;gng_VisualInfo
  1122.         dc.l    0        ;gng_UserData
  1123.  
  1124. ;Gadget TagLists
  1125.  
  1126. GadTagList:    dc.l    GT_Underscore,'_'
  1127.         dc.l    TAG_DONE,0
  1128. DirGadTagList:    dc.l    GTCY_Labels,DirLabels
  1129.         dc.l    TAG_DONE,0
  1130. ;Menus
  1131.  
  1132. Menu1Name:    dc.b    "Project",0
  1133. AboutMenuText1:    dc.b    "About...",0
  1134. AboutCommKey:    dc.b    "?",0
  1135. QuitMenuText1:    dc.b    "Quit",0
  1136. QuitCommKey:    dc.b    "Q",0
  1137.         ds.l    0
  1138.  
  1139. MNProjectMenu1:    dc.b    NM_TITLE        ;gnm_Type
  1140.         dc.b    0            ;gnm_Pad
  1141.         dc.l    Menu1Name        ;gnm_Label
  1142.         dc.l    0            ;gnm_CommKey
  1143.         dc.w    0            ;gnm_Flags
  1144.         dc.l    0            ;gnm_MutualExclude
  1145.         dc.l    0            ;gnm_UserData
  1146.  
  1147. MNAbout1:    dc.b    NM_ITEM            ;gnm_Type
  1148.         dc.b    0            ;gnm_Pad
  1149.         dc.l    AboutMenuText1        ;gnm_Label
  1150.         dc.l    AboutCommKey        ;gnm_CommKey
  1151.         dc.w    0            ;gnm_Flags
  1152.         dc.l    0            ;gnm_MutualExclude
  1153.         dc.l    0            ;gnm_UserData
  1154.  
  1155. MNP1SepMenu1:    dc.b    NM_ITEM            ;gnm_Type
  1156.         dc.b    0            ;gnm_Pad
  1157.         dc.l    NM_BARLABEL        ;gnm_Label
  1158.         dc.l    0            ;gnm_CommKey
  1159.         dc.w    0            ;gnm_Flags
  1160.         dc.l    0            ;gnm_MutualExclude
  1161.         dc.l    0            ;gnm_UserData
  1162.  
  1163. MNQuit1:    dc.b    NM_ITEM            ;gnm_Type
  1164.         dc.b    0            ;gnm_Pad
  1165.         dc.l    QuitMenuText1        ;gnm_Label
  1166.         dc.l    QuitCommKey        ;gnm_CommKey
  1167.         dc.w    0            ;gnm_Flags
  1168.         dc.l    0            ;gnm_MutualExclude
  1169.         dc.l    0            ;gnm_UserData
  1170.  
  1171.         dc.w    0            ;NM_END?
  1172.  
  1173. ;Menu TagList(s)
  1174.  
  1175. MenuTagList:    dc.l    GTMN_Menu,MNProjectMenu1
  1176.         dc.l    TAG_DONE,0
  1177.  
  1178.         Section    RD,DATA,CHIP
  1179.  
  1180.         ds.w    0
  1181.  
  1182. ClockPointer1:    dc.w    $0000,$0000
  1183.         dc.w    $0400,$07C0,$0000,$07C0,$0100,$0380,$0000,$07E0
  1184.         dc.w    $07C0,$1FF8,$1FF0,$3FEC,$3FF8,$7FDE,$3FF8,$7FBE
  1185.         dc.w    $7FFC,$FF7F,$7EFC,$FFFF,$7FFC,$FFFF,$3FF8,$7FFE
  1186.         dc.w    $3FF8,$7FFE,$1FF0,$3FFC,$07C0,$1FF8,$0000,$07E0
  1187.         dc.w    $0000,$0000
  1188.  
  1189.         end
  1190.  
  1191.